const express = require('express');
const cors = require('cors');
const bodyParser = require('body-parser');
const { testConnection, initDatabase } = require('./db');
const orderRoutes = require('./routes/orderRoutes');
const authRoutes = require('./routes/authRoutes');

const app = express();

// 中间件
app.use(cors());
app.use(bodyParser.json());

// 路由
app.use('/', authRoutes);
app.use('/', orderRoutes);

// 根路由
app.get('/', (req, res) => {
  res.json({ message: '下单小票打印管理系统后端服务' });
});

// 404处理
app.use((req, res) => {
  res.status(404).json({ error: '接口不存在' });
});

// 错误处理中间件
app.use((err, req, res, next) => {
  console.error('错误:', err);
  res.status(500).json({ error: '服务器内部错误' });
});

// 启动服务器 - 硬编码端口
const PORT = 9208;

async function startServer() {
  try {
    // 测试数据库连接
    await testConnection();
    
    // 初始化数据库表
    await initDatabase();
    
    // 启动服务器
    app.listen(PORT, () => {
      console.log(`服务器运行在 http://localhost:${PORT}`);
    });
  } catch (error) {
    console.error('启动服务器失败:', error);
    process.exit(1);
  }
}

startServer();